A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the U.S. Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever.
The present invention relates to software for assisting users, and, more particularly, to a system and method for interactively assisting a user operating an application program.
The rapid rate of development and proliferation of software throughout work, business transactions, and society have required a high degree of learning and absorption by users to properly operate and gain the advantage of such software. However, as more and more features are integrated into application software, the complexity and shear volume of diverse features can be overwhelming, even for experienced computer users. In addition, interfaces for applications have increased the possibility of confusion to the users in attempting to provide application operators with more choices for improved productivity. For example, stacked dialog boxes and a multitude of taskbars, icons, commands, and options have given users the opportunity to be more productive, but the very same increase in operational options has decreased the ability of a user to learn and thoroughly understand such application software.
Since software and application programs are being dynamically improved and distributed, the learning environment for a user is constantly and rapidly changing. Accordingly, a need exists for development tools and assistance software which guide a user through such complex and changing software environments.
In addition, computer applications typically provide exceedingly repetitive and uniform interfaces which, for example, confuse users by having icons appearing similar when having different functions in different applications. A need exists for an interface and/or an assistance system and method for guiding a user through different applications to properly use any given application despite similar application interfaces and commands.
Developments in accessing data for timely delivery have increased with more networking between computing environments, such as the Internet. World Wide Web (WWW) browsers and search engines as well as self-service and automation such as Internet-traversing bots and push technology have increased the productivity of users. However, such network-based environments also suffer from the indicated interface complexity issues.
Separate from application developers, third-party or remote software developers have developed assistance systems which aid users to use application programs with greater ease and productivity, for example, to quickly access the typically 5% of an application program most commonly used by typical users. Such assistance systems may be capable of working with the application program without accessing the internal operation of the application program code itself. Thus, separate assistance systems may enhance productivity and reduce the complexity of the underlying host application program.
However, in the prior art, such assistance systems are limited to generating help panes and dialog boxes, which occupy space on a display, which is relatively xe2x80x9cvaluablexe2x80x9d from an interface-based perspective. For example, U.S. Pat. No. 5,825,356 describes a help system with semi-transparent windows for disabling controls, with the help system disabling buttons and interface screen icons and generating a static balloon to highlight portions of the interface. However, such highlighting balloons tend to clutter the displayed interface, and so are not effective in assisting users.
In addition, help or assistance systems and methods for software applications generally do not use overlays for display on the same interface screen as the software application, and do not have multimedia operations, so such prior art systems are not effective in assisting users. Furthermore, known help systems are pre-coded using, for example, script languages to handle predetermined commands and user actions, and so are statically fixed and incapable of run-time path determination to interactively assist a user to learn an application program. Such script languages also prevent third-party developers from rapidly creating new or improved production tools as the underlying application program is changed. Moreover, help systems are primarily created for single user operation, and so are not typically networked or network-compatibly for collaborative or real-time shared use by many users learning or using a common application program.
A Cooperative Help Assistance (CHA) system and method provide real-time user assistance for one or more windows-based Graphic User Interface (GUI) applications or a single application""s different subsections such as web pages, running concurrently in any operating system. The CHA System enables the development of an informative assistance object (obj) independently from the original source code or development environment of the target Host Application. The assistance object can be selected by any number of user interfaces from sophisticated inference-driven interactive interface search tools or categorized lists. By intercepting and monitoring a user""s actions on a Host Application, the CHA system and method perform intelligent assistance in the context of the target host application program. Utilizing a specialized CHA Database which contains a Host Application Model, and numerous behavioral, resource and information objects, the CHA System and method dynamically assembles many elements in real-time or just-in-time operation, which makes the production of assistance sequences or elements efficient without having to necessarily code every interface path permutation. Paths can be dynamically generated from the Host App. Model.
Furthermore, the Model enables a real-time module to offer intelligent, contextual assistance as well as the real-time construction of automated, accelerated CHA Sequences or Procedures that require little or no user interaction. All pertinent assistance and information are processed and expressed by an extensive multitasking, multimedia subsystem in both two dimensional (2D) and real-time three-dimensional (3D) application interfaces, which greatly enhances and extends the effectiveness of any explanation or material expression. The production of Assistant Sequences is facilitated by the Host App. Model and 2D and 3D GUI xe2x80x9cdrag and dropxe2x80x9d interface tools and in this mode does not require scripting languages or predetermined static programming. Scripting, however, is optionally accessible for specific or specialized tasks. By being adaptive across any number of processes and applications and different environments such as networks, the Internet, or stand-alone applications, the CHA System and method provide alternative and rapid solutions for the problem of presenting indirect, lengthy text explanations about using GUI applications and their often complex, abstract interfaces and procedures.